---@class equip
local equip = {}
local this = equip

local import = import
---@type item
local item = import("game/func/item")


------------------------------------------------------------------------------------
---获取背包中各种精工石的数量
--（可以是归属与非归属  但是  不能是光辉的（精工紫色的））
------------------------------------------------------------------------------------
-- 得到挂机地图数据
function this.get_seiko_stone_num()
    -- 查询武器精工石的数量
    local num1 = 0
    -- 查询防具精工石的数量
    local num2 = 0
    -- 查询饰品精工石数量
    local num3 = 0
    -- 查询手工艺品精工石数量
    local num4 = 0

    -- 获取背包表
    local bag_item_list = item.get_bag_item_list(0)
    for k, v in pairs(bag_item_list) do
        if string.find(v.name, "武器精工石") and not string.find(v.name, "光辉的") then
            num1 = num1 + v.num
        end
        if string.find(v.name, "防具精工石") and not string.find(v.name, "光辉的") then
            num2 = num2 + v.num
        end
        if string.find(v.name, "饰品精工石") and not string.find(v.name, "光辉的") then
            num3 = num3 + v.num
        end
        if string.find(v.name, "手工艺品精工石") and not string.find(v.name, "光辉的") then
            num4 = num4 + v.num
        end
    end

    return num1, num2, num3, num4
end

------------------------------------------------------------------------------------
---根据精工需要的精工石名称获取背包中的id
-- 模糊查询（有归属和非归属的） 只要包含该名称的就可以  但是排除‘光辉的’
------------------------------------------------------------------------------------
function this.get_item_id_by_name(need_item)
    local item_id = 0
    -- 获取背包中的物品
    local bag_item_list = item.get_bag_item_list(0)
    -- 将模糊查询到的精工石添加到表中
    local seiko_stone = {}
    for k, v in pairs(bag_item_list) do
        if string.find(v.name, need_item) and not string.find(v.name, "光辉的") then
            table.insert(seiko_stone, v)
        end
    end
    -- 如果为空 直接返回0
    if table.is_empty(seiko_stone) then
        return 0
    end
    -- 不为空 就先删除过期的物品
    for k = 1, #seiko_stone do
        if seiko_stone[k].is_expiration then
            table.remove(seiko_stone, k)
        end
    end

    -- 优先使用活动的精工石
    if not table.is_empty(seiko_stone) then
        -- 获取活动的 并且没有过期的
        for i = 1, #seiko_stone do
            if string.find(seiko_stone[i].name, "活动") then
                item_id = seiko_stone[i].id
            end
        end
        -- 没有活动的就使用第一个
        if item_id == 0 then
            item_id = seiko_stone[1].id
        end
    end

    return item_id
end

------------------------------------------------------------------------------------
---根据强化需要的强化石名称获取背包中的id
-- 模糊查询（有归属和非归属的） 只要包含该名称的就可以
------------------------------------------------------------------------------------
function this.get_item_id_by_nameV1(need_item)
    local item_id = 0
    -- 获取背包中的物品
    local bag_item_list = item.get_bag_item_list(0)
    -- 将模糊查询到的强化卷轴添加到表中
    local up_list = {}
    for k, v in pairs(bag_item_list) do
        if string.find(v.name, need_item) then
            table.insert(up_list, v)
        end
    end
    -- 如果为空 直接返回0
    if table.is_empty(up_list) then
        return 0
    end
    -- 不为空 就先删除过期的物品
    for k = 1, #up_list do
        if up_list[k].is_expiration then
            table.remove(up_list, k)
        end
    end

    -- 优先使用活动的强化卷轴
    if not table.is_empty(up_list) then
        -- 获取活动的
        for i = 1, #up_list do
            if string.find(up_list[i].name, "活动") then
                item_id = up_list[i].id
            end
        end
        -- 没有活动的就使用第一个
        if item_id == 0 then
            item_id = up_list[1].id
        end
    end

    return item_id
end

return this
